// Copyright (c) 2016, SolidCP
// SolidCP is distributed under the Creative Commons Share-alike license
// 
// SolidCP is a fork of WebsitePanel:
// Copyright (c) 2015, Outercurve Foundation.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// - Redistributions of source code must  retain  the  above copyright notice, this
//   list of conditions and the following disclaimer.
//
// - Redistributions in binary form  must  reproduce the  above  copyright  notice,
//   this list of conditions  and  the  following  disclaimer in  the documentation
//   and/or other materials provided with the distribution.
//
// - Neither  the  name  of  the  Outercurve Foundation  nor   the   names  of  its
//   contributors may be used to endorse or  promote  products  derived  from  this
//   software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,  BUT  NOT  LIMITED TO, THE IMPLIED
// WARRANTIES  OF  MERCHANTABILITY   AND  FITNESS  FOR  A  PARTICULAR  PURPOSE  ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
// ANY DIRECT, INDIRECT, INCIDENTAL,  SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL DAMAGES
// (INCLUDING, BUT NOT LIMITED TO,  PROCUREMENT  OF  SUBSTITUTE  GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)  HOWEVER  CAUSED AND ON
// ANY  THEORY  OF  LIABILITY,  WHETHER  IN  CONTRACT,  STRICT  LIABILITY,  OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE)  ARISING  IN  ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:2.0.50727.42
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

// 
// This source code was auto-generated by wsdl, Version=2.0.50727.42.
// 
namespace SolidCP.Providers.FTP {
    using System.Diagnostics;
    using System.Web.Services;
    using System.ComponentModel;
    using System.Web.Services.Protocols;
    using System;
    using System.Xml.Serialization;
    
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Web.Services.WebServiceBindingAttribute(Name="FTPServerSoap", Namespace="http://smbsaas/solidcp/server/")]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ServiceProviderItem))]
    public partial class FTPServer : Microsoft.Web.Services3.WebServicesClientProtocol {
        
        public ServiceProviderSettingsSoapHeader ServiceProviderSettingsSoapHeaderValue;
        
        private System.Threading.SendOrPostCallback ChangeSiteStateOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetSiteStateOperationCompleted;
        
        private System.Threading.SendOrPostCallback SiteExistsOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetSitesOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetSiteOperationCompleted;
        
        private System.Threading.SendOrPostCallback CreateSiteOperationCompleted;
        
        private System.Threading.SendOrPostCallback UpdateSiteOperationCompleted;
        
        private System.Threading.SendOrPostCallback DeleteSiteOperationCompleted;
        
        private System.Threading.SendOrPostCallback AccountExistsOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetAccountsOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetAccountOperationCompleted;
        
        private System.Threading.SendOrPostCallback CreateAccountOperationCompleted;
        
        private System.Threading.SendOrPostCallback UpdateAccountOperationCompleted;
        
        private System.Threading.SendOrPostCallback DeleteAccountOperationCompleted;
        
        /// <remarks/>
        public FTPServer() {
            this.Url = "http://localhost/SolidCPServer11/FtpServer.asmx";
        }
        
        /// <remarks/>
        public event ChangeSiteStateCompletedEventHandler ChangeSiteStateCompleted;
        
        /// <remarks/>
        public event GetSiteStateCompletedEventHandler GetSiteStateCompleted;
        
        /// <remarks/>
        public event SiteExistsCompletedEventHandler SiteExistsCompleted;
        
        /// <remarks/>
        public event GetSitesCompletedEventHandler GetSitesCompleted;
        
        /// <remarks/>
        public event GetSiteCompletedEventHandler GetSiteCompleted;
        
        /// <remarks/>
        public event CreateSiteCompletedEventHandler CreateSiteCompleted;
        
        /// <remarks/>
        public event UpdateSiteCompletedEventHandler UpdateSiteCompleted;
        
        /// <remarks/>
        public event DeleteSiteCompletedEventHandler DeleteSiteCompleted;
        
        /// <remarks/>
        public event AccountExistsCompletedEventHandler AccountExistsCompleted;
        
        /// <remarks/>
        public event GetAccountsCompletedEventHandler GetAccountsCompleted;
        
        /// <remarks/>
        public event GetAccountCompletedEventHandler GetAccountCompleted;
        
        /// <remarks/>
        public event CreateAccountCompletedEventHandler CreateAccountCompleted;
        
        /// <remarks/>
        public event UpdateAccountCompletedEventHandler UpdateAccountCompleted;
        
        /// <remarks/>
        public event DeleteAccountCompletedEventHandler DeleteAccountCompleted;
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/ChangeSiteState", RequestNamespace="http://smbsaas/solidcp/server/", ResponseNamespace="http://smbsaas/solidcp/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void ChangeSiteState(string siteId, ServerState state) {
            this.Invoke("ChangeSiteState", new object[] {
                        siteId,
                        state});
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginChangeSiteState(string siteId, ServerState state, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("ChangeSiteState", new object[] {
                        siteId,
                        state}, callback, asyncState);
        }
        
        /// <remarks/>
        public void EndChangeSiteState(System.IAsyncResult asyncResult) {
            this.EndInvoke(asyncResult);
        }
        
        /// <remarks/>
        public void ChangeSiteStateAsync(string siteId, ServerState state) {
            this.ChangeSiteStateAsync(siteId, state, null);
        }
        
        /// <remarks/>
        public void ChangeSiteStateAsync(string siteId, ServerState state, object userState) {
            if ((this.ChangeSiteStateOperationCompleted == null)) {
                this.ChangeSiteStateOperationCompleted = new System.Threading.SendOrPostCallback(this.OnChangeSiteStateOperationCompleted);
            }
            this.InvokeAsync("ChangeSiteState", new object[] {
                        siteId,
                        state}, this.ChangeSiteStateOperationCompleted, userState);
        }
        
        private void OnChangeSiteStateOperationCompleted(object arg) {
            if ((this.ChangeSiteStateCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.ChangeSiteStateCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetSiteState", RequestNamespace="http://smbsaas/solidcp/server/", ResponseNamespace="http://smbsaas/solidcp/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public ServerState GetSiteState(string siteId) {
            object[] results = this.Invoke("GetSiteState", new object[] {
                        siteId});
            return ((ServerState)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetSiteState(string siteId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetSiteState", new object[] {
                        siteId}, callback, asyncState);
        }
        
        /// <remarks/>
        public ServerState EndGetSiteState(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((ServerState)(results[0]));
        }
        
        /// <remarks/>
        public void GetSiteStateAsync(string siteId) {
            this.GetSiteStateAsync(siteId, null);
        }
        
        /// <remarks/>
        public void GetSiteStateAsync(string siteId, object userState) {
            if ((this.GetSiteStateOperationCompleted == null)) {
                this.GetSiteStateOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetSiteStateOperationCompleted);
            }
            this.InvokeAsync("GetSiteState", new object[] {
                        siteId}, this.GetSiteStateOperationCompleted, userState);
        }
        
        private void OnGetSiteStateOperationCompleted(object arg) {
            if ((this.GetSiteStateCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetSiteStateCompleted(this, new GetSiteStateCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/SiteExists", RequestNamespace="http://smbsaas/solidcp/server/", ResponseNamespace="http://smbsaas/solidcp/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public bool SiteExists(string siteId) {
            object[] results = this.Invoke("SiteExists", new object[] {
                        siteId});
            return ((bool)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginSiteExists(string siteId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("SiteExists", new object[] {
                        siteId}, callback, asyncState);
        }
        
        /// <remarks/>
        public bool EndSiteExists(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((bool)(results[0]));
        }
        
        /// <remarks/>
        public void SiteExistsAsync(string siteId) {
            this.SiteExistsAsync(siteId, null);
        }
        
        /// <remarks/>
        public void SiteExistsAsync(string siteId, object userState) {
            if ((this.SiteExistsOperationCompleted == null)) {
                this.SiteExistsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSiteExistsOperationCompleted);
            }
            this.InvokeAsync("SiteExists", new object[] {
                        siteId}, this.SiteExistsOperationCompleted, userState);
        }
        
        private void OnSiteExistsOperationCompleted(object arg) {
            if ((this.SiteExistsCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.SiteExistsCompleted(this, new SiteExistsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetSites", RequestNamespace="http://smbsaas/solidcp/server/", ResponseNamespace="http://smbsaas/solidcp/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public FtpSite[] GetSites() {
            object[] results = this.Invoke("GetSites", new object[0]);
            return ((FtpSite[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetSites(System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetSites", new object[0], callback, asyncState);
        }
        
        /// <remarks/>
        public FtpSite[] EndGetSites(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((FtpSite[])(results[0]));
        }
        
        /// <remarks/>
        public void GetSitesAsync() {
            this.GetSitesAsync(null);
        }
        
        /// <remarks/>
        public void GetSitesAsync(object userState) {
            if ((this.GetSitesOperationCompleted == null)) {
                this.GetSitesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetSitesOperationCompleted);
            }
            this.InvokeAsync("GetSites", new object[0], this.GetSitesOperationCompleted, userState);
        }
        
        private void OnGetSitesOperationCompleted(object arg) {
            if ((this.GetSitesCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetSitesCompleted(this, new GetSitesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetSite", RequestNamespace="http://smbsaas/solidcp/server/", ResponseNamespace="http://smbsaas/solidcp/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public FtpSite GetSite(string siteId) {
            object[] results = this.Invoke("GetSite", new object[] {
                        siteId});
            return ((FtpSite)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetSite(string siteId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetSite", new object[] {
                        siteId}, callback, asyncState);
        }
        
        /// <remarks/>
        public FtpSite EndGetSite(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((FtpSite)(results[0]));
        }
        
        /// <remarks/>
        public void GetSiteAsync(string siteId) {
            this.GetSiteAsync(siteId, null);
        }
        
        /// <remarks/>
        public void GetSiteAsync(string siteId, object userState) {
            if ((this.GetSiteOperationCompleted == null)) {
                this.GetSiteOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetSiteOperationCompleted);
            }
            this.InvokeAsync("GetSite", new object[] {
                        siteId}, this.GetSiteOperationCompleted, userState);
        }
        
        private void OnGetSiteOperationCompleted(object arg) {
            if ((this.GetSiteCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetSiteCompleted(this, new GetSiteCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/CreateSite", RequestNamespace="http://smbsaas/solidcp/server/", ResponseNamespace="http://smbsaas/solidcp/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public string CreateSite(FtpSite site) {
            object[] results = this.Invoke("CreateSite", new object[] {
                        site});
            return ((string)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginCreateSite(FtpSite site, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("CreateSite", new object[] {
                        site}, callback, asyncState);
        }
        
        /// <remarks/>
        public string EndCreateSite(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((string)(results[0]));
        }
        
        /// <remarks/>
        public void CreateSiteAsync(FtpSite site) {
            this.CreateSiteAsync(site, null);
        }
        
        /// <remarks/>
        public void CreateSiteAsync(FtpSite site, object userState) {
            if ((this.CreateSiteOperationCompleted == null)) {
                this.CreateSiteOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateSiteOperationCompleted);
            }
            this.InvokeAsync("CreateSite", new object[] {
                        site}, this.CreateSiteOperationCompleted, userState);
        }
        
        private void OnCreateSiteOperationCompleted(object arg) {
            if ((this.CreateSiteCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.CreateSiteCompleted(this, new CreateSiteCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/UpdateSite", RequestNamespace="http://smbsaas/solidcp/server/", ResponseNamespace="http://smbsaas/solidcp/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void UpdateSite(FtpSite site) {
            this.Invoke("UpdateSite", new object[] {
                        site});
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginUpdateSite(FtpSite site, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("UpdateSite", new object[] {
                        site}, callback, asyncState);
        }
        
        /// <remarks/>
        public void EndUpdateSite(System.IAsyncResult asyncResult) {
            this.EndInvoke(asyncResult);
        }
        
        /// <remarks/>
        public void UpdateSiteAsync(FtpSite site) {
            this.UpdateSiteAsync(site, null);
        }
        
        /// <remarks/>
        public void UpdateSiteAsync(FtpSite site, object userState) {
            if ((this.UpdateSiteOperationCompleted == null)) {
                this.UpdateSiteOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateSiteOperationCompleted);
            }
            this.InvokeAsync("UpdateSite", new object[] {
                        site}, this.UpdateSiteOperationCompleted, userState);
        }
        
        private void OnUpdateSiteOperationCompleted(object arg) {
            if ((this.UpdateSiteCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.UpdateSiteCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/DeleteSite", RequestNamespace="http://smbsaas/solidcp/server/", ResponseNamespace="http://smbsaas/solidcp/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void DeleteSite(string siteId) {
            this.Invoke("DeleteSite", new object[] {
                        siteId});
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginDeleteSite(string siteId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("DeleteSite", new object[] {
                        siteId}, callback, asyncState);
        }
        
        /// <remarks/>
        public void EndDeleteSite(System.IAsyncResult asyncResult) {
            this.EndInvoke(asyncResult);
        }
        
        /// <remarks/>
        public void DeleteSiteAsync(string siteId) {
            this.DeleteSiteAsync(siteId, null);
        }
        
        /// <remarks/>
        public void DeleteSiteAsync(string siteId, object userState) {
            if ((this.DeleteSiteOperationCompleted == null)) {
                this.DeleteSiteOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteSiteOperationCompleted);
            }
            this.InvokeAsync("DeleteSite", new object[] {
                        siteId}, this.DeleteSiteOperationCompleted, userState);
        }
        
        private void OnDeleteSiteOperationCompleted(object arg) {
            if ((this.DeleteSiteCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DeleteSiteCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/AccountExists", RequestNamespace="http://smbsaas/solidcp/server/", ResponseNamespace="http://smbsaas/solidcp/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public bool AccountExists(string accountName) {
            object[] results = this.Invoke("AccountExists", new object[] {
                        accountName});
            return ((bool)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginAccountExists(string accountName, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("AccountExists", new object[] {
                        accountName}, callback, asyncState);
        }
        
        /// <remarks/>
        public bool EndAccountExists(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((bool)(results[0]));
        }
        
        /// <remarks/>
        public void AccountExistsAsync(string accountName) {
            this.AccountExistsAsync(accountName, null);
        }
        
        /// <remarks/>
        public void AccountExistsAsync(string accountName, object userState) {
            if ((this.AccountExistsOperationCompleted == null)) {
                this.AccountExistsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAccountExistsOperationCompleted);
            }
            this.InvokeAsync("AccountExists", new object[] {
                        accountName}, this.AccountExistsOperationCompleted, userState);
        }
        
        private void OnAccountExistsOperationCompleted(object arg) {
            if ((this.AccountExistsCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.AccountExistsCompleted(this, new AccountExistsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetAccounts", RequestNamespace="http://smbsaas/solidcp/server/", ResponseNamespace="http://smbsaas/solidcp/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public FtpAccount[] GetAccounts() {
            object[] results = this.Invoke("GetAccounts", new object[0]);
            return ((FtpAccount[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetAccounts(System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetAccounts", new object[0], callback, asyncState);
        }
        
        /// <remarks/>
        public FtpAccount[] EndGetAccounts(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((FtpAccount[])(results[0]));
        }
        
        /// <remarks/>
        public void GetAccountsAsync() {
            this.GetAccountsAsync(null);
        }
        
        /// <remarks/>
        public void GetAccountsAsync(object userState) {
            if ((this.GetAccountsOperationCompleted == null)) {
                this.GetAccountsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetAccountsOperationCompleted);
            }
            this.InvokeAsync("GetAccounts", new object[0], this.GetAccountsOperationCompleted, userState);
        }
        
        private void OnGetAccountsOperationCompleted(object arg) {
            if ((this.GetAccountsCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetAccountsCompleted(this, new GetAccountsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetAccount", RequestNamespace="http://smbsaas/solidcp/server/", ResponseNamespace="http://smbsaas/solidcp/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public FtpAccount GetAccount(string accountName) {
            object[] results = this.Invoke("GetAccount", new object[] {
                        accountName});
            return ((FtpAccount)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetAccount(string accountName, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetAccount", new object[] {
                        accountName}, callback, asyncState);
        }
        
        /// <remarks/>
        public FtpAccount EndGetAccount(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((FtpAccount)(results[0]));
        }
        
        /// <remarks/>
        public void GetAccountAsync(string accountName) {
            this.GetAccountAsync(accountName, null);
        }
        
        /// <remarks/>
        public void GetAccountAsync(string accountName, object userState) {
            if ((this.GetAccountOperationCompleted == null)) {
                this.GetAccountOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetAccountOperationCompleted);
            }
            this.InvokeAsync("GetAccount", new object[] {
                        accountName}, this.GetAccountOperationCompleted, userState);
        }
        
        private void OnGetAccountOperationCompleted(object arg) {
            if ((this.GetAccountCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetAccountCompleted(this, new GetAccountCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/CreateAccount", RequestNamespace="http://smbsaas/solidcp/server/", ResponseNamespace="http://smbsaas/solidcp/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void CreateAccount(FtpAccount account) {
            this.Invoke("CreateAccount", new object[] {
                        account});
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginCreateAccount(FtpAccount account, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("CreateAccount", new object[] {
                        account}, callback, asyncState);
        }
        
        /// <remarks/>
        public void EndCreateAccount(System.IAsyncResult asyncResult) {
            this.EndInvoke(asyncResult);
        }
        
        /// <remarks/>
        public void CreateAccountAsync(FtpAccount account) {
            this.CreateAccountAsync(account, null);
        }
        
        /// <remarks/>
        public void CreateAccountAsync(FtpAccount account, object userState) {
            if ((this.CreateAccountOperationCompleted == null)) {
                this.CreateAccountOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateAccountOperationCompleted);
            }
            this.InvokeAsync("CreateAccount", new object[] {
                        account}, this.CreateAccountOperationCompleted, userState);
        }
        
        private void OnCreateAccountOperationCompleted(object arg) {
            if ((this.CreateAccountCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.CreateAccountCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/UpdateAccount", RequestNamespace="http://smbsaas/solidcp/server/", ResponseNamespace="http://smbsaas/solidcp/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void UpdateAccount(FtpAccount account) {
            this.Invoke("UpdateAccount", new object[] {
                        account});
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginUpdateAccount(FtpAccount account, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("UpdateAccount", new object[] {
                        account}, callback, asyncState);
        }
        
        /// <remarks/>
        public void EndUpdateAccount(System.IAsyncResult asyncResult) {
            this.EndInvoke(asyncResult);
        }
        
        /// <remarks/>
        public void UpdateAccountAsync(FtpAccount account) {
            this.UpdateAccountAsync(account, null);
        }
        
        /// <remarks/>
        public void UpdateAccountAsync(FtpAccount account, object userState) {
            if ((this.UpdateAccountOperationCompleted == null)) {
                this.UpdateAccountOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateAccountOperationCompleted);
            }
            this.InvokeAsync("UpdateAccount", new object[] {
                        account}, this.UpdateAccountOperationCompleted, userState);
        }
        
        private void OnUpdateAccountOperationCompleted(object arg) {
            if ((this.UpdateAccountCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.UpdateAccountCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/DeleteAccount", RequestNamespace="http://smbsaas/solidcp/server/", ResponseNamespace="http://smbsaas/solidcp/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void DeleteAccount(string accountName) {
            this.Invoke("DeleteAccount", new object[] {
                        accountName});
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginDeleteAccount(string accountName, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("DeleteAccount", new object[] {
                        accountName}, callback, asyncState);
        }
        
        /// <remarks/>
        public void EndDeleteAccount(System.IAsyncResult asyncResult) {
            this.EndInvoke(asyncResult);
        }
        
        /// <remarks/>
        public void DeleteAccountAsync(string accountName) {
            this.DeleteAccountAsync(accountName, null);
        }
        
        /// <remarks/>
        public void DeleteAccountAsync(string accountName, object userState) {
            if ((this.DeleteAccountOperationCompleted == null)) {
                this.DeleteAccountOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteAccountOperationCompleted);
            }
            this.InvokeAsync("DeleteAccount", new object[] {
                        accountName}, this.DeleteAccountOperationCompleted, userState);
        }
        
        private void OnDeleteAccountOperationCompleted(object arg) {
            if ((this.DeleteAccountCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DeleteAccountCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        public new void CancelAsync(object userState) {
            base.CancelAsync(userState);
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void ChangeSiteStateCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetSiteStateCompletedEventHandler(object sender, GetSiteStateCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetSiteStateCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetSiteStateCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public ServerState Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((ServerState)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void SiteExistsCompletedEventHandler(object sender, SiteExistsCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class SiteExistsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal SiteExistsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public bool Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((bool)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetSitesCompletedEventHandler(object sender, GetSitesCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetSitesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetSitesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public FtpSite[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((FtpSite[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetSiteCompletedEventHandler(object sender, GetSiteCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetSiteCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetSiteCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public FtpSite Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((FtpSite)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void CreateSiteCompletedEventHandler(object sender, CreateSiteCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class CreateSiteCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal CreateSiteCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public string Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void UpdateSiteCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void DeleteSiteCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void AccountExistsCompletedEventHandler(object sender, AccountExistsCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class AccountExistsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal AccountExistsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public bool Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((bool)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetAccountsCompletedEventHandler(object sender, GetAccountsCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetAccountsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetAccountsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public FtpAccount[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((FtpAccount[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetAccountCompletedEventHandler(object sender, GetAccountCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetAccountCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetAccountCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public FtpAccount Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((FtpAccount)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void CreateAccountCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void UpdateAccountCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void DeleteAccountCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
}
